Software development technologies have advanced to provide many developers with additional tools to readily create programs with rich user experiences adapted for multiple platforms and systems with customization for selected user groups in ways once only available to the most advanced developers. An example includes the use of asynchronous programming models to perform such actions as accessing a resource, offloading a computation, and reading files from storage. Traditionally, asynchronous programming models were more difficult to understand or implement as compared to the commonly used and relatively straightforward synchronous programming model. Many popular programming languages, frameworks, and runtimes now include features that facilitate asynchronous programming. Software diagnostic technologies such as debuggers, however, may not have addressed the traditional difficulties of troubleshooting asynchronous processes.